home *** CD-ROM | disk | FTP | other *** search
- ; DEFS.MAC
- ; 87/03/18, Marc Savary, Ad Lib.
-
- dos_terminate equ 20H
- dos_tsr equ 27H
- dos_function_call equ 21H
- dos_get_vector_function equ 35H
- dos_set_vector_function equ 25H
- dos_print_string_function equ 9H
-
- sound_driver_int equ 101
-
-
-
- ; cette macro definie la procedure 'GetSoundDrvVersion'
- ; qui retourne le numero de version du sound-driver dans
- ; AH et AL, ou 0 dans AX s'il n'est pas charge.
- ;
- ; la signature est situee immediatement avant le point d'entree
- ; de la fonction d'interruption.
- ;
- DrvVersionProc MACRO NAME
- IF LPROG
- NAME proc FAR
- ELSE
- NAME proc NEAR
- ENDIF
-
- push es
- push si
- push di
-
- mov al, sound_driver_int
- mov ah, dos_get_vector_function
- int dos_function_call ; es:bx
- ; comparer les deux signatures:
- mov cx, sig_cmp_len ; longueur a comparer...
- ; IF LPROG EQ 0
- ; mov si, offset PGROUP:signature
- ; ELSE
- ; mov si, offset _CODE:signature
- ; ENDIF
- mov si, offset signature
-
- mov di, bx
- sub di, sig_len+2 ; offset de la signature dans driver
- mov ax, es:[di] ; version # ( 1.3 & +)
- add di, 2
- cld ; forward comparaison
- repz cmps cs:byte ptr [si], es:[di] ; compare string
- jz fin
- xor ax, ax
- fin:
- pop di
- pop si
- pop es
- ret
- NAME ENDP
-
- ENDM
-